There are two primary sources of smoking prevalence data: Quality and Outcomes Framework (QOF) extracted from GP data systems, and the Annual Population Survey (APS).
According to FingerTips regarding QOF: “The percentage of patients who do not have their smoking status recorded varies from 40% to less than 1%, but the characteristics of these patients are not known. Recording of smoking status has been shown to vary between groups; women, older people and those with chronic conditions were more likely to have their smoking status recorded.” However, a study by Honeyford K, et al “found that the proportion of patients recorded as smokers… is a good estimate of the actual smoking prevalence of the practice.”
The APS prevalence, however, is based on a sample of the population of Birmingham. In 2023, 840 people participated in the survey. This is 0.1% of the 857,455 people aged 18+ in the 2021 census. As can be seen in the figure below, this small denominator means there is large uncertainty on the prevalence value. As a result, the increase in prevalence seen in 2023 is not statistically significant.
Smoking Cessation Services
The map below shows the smoking QOF prevalence (2023/24) and the location of BCC commissioned smoking cessation services.
GP Patient Demographics
For data security, all counts relating to GP registrations are rounded to the nearest 5.
GP_eths_ojs = aq.from(transpose(GP_eths))GP_Age_Gender_ojs = aq.from(transpose(GP_Age_Gender))GP_IMD_ojs = aq.from(transpose(GP_IMD))// Extract unique Practice Names from the tablePractice_Names = GP_eths_ojs.array("GP_Name").filter((v, i, a) => a.indexOf(v) === i).sort()/* Get input from user */viewof variable = Inputs.select(Practice_Names, {label:"Choose a Practice"})/* Filter based on selected variable */GP_eths_filtered = GP_eths_ojs.params({ variable }).filter((d) => d.GP_Name=== variable)GP_Age_Gender_filtered = GP_Age_Gender_ojs.params({ variable }).filter((d) => d.GP_Name=== variable)GP_IMD_filtered = GP_IMD_ojs.params({ variable }).filter((d) => d.GP_Name=== variable)
Plot.plot({width:800,height:300,marginLeft:80,marginBottom:120,/* Set axis labels */x: { label:"Ethnicity",tickRotate:-45 },y: { label:"Number of patients" },marks: [ Plot.barY(GP_eths_filtered, {y:"N",x:"Ethnicity",fill:"#7570b3" }) ]})
Plot.plot({width:320,height:240,marginLeft:80,marginTop:60,/* Set axis labels */x: { label:"IMD Quintile",type:"band",// explicitly treat x as categoricaldomain: ["1","2","3","4","5","Unknown"] },y: { label:"Number of patients" },marks: [ Plot.barY(GP_IMD_filtered, {y:"N",x:"IMD_Quintile",fill:"#7570b3" }) ]})
The demographics of pharmacy customers are estimated based on those living within 1km of the pharmacy using the 2021 ONS census. Only Birmingham residents are included in the analysis.
pharm_eths_ojs = aq.from(transpose(pharm_eths))pharm_Age_Gender_ojs = aq.from(transpose(pharm_Age_Gender))pharm_IMD_ojs = aq.from(transpose(pharm_IMD))// Extract unique Practice Names from the tablePharmacy_Names = pharm_eths_ojs.array("Name_Code").filter((v, i, a) => a.indexOf(v) === i).sort()/* Get input from user */viewof variable2 = Inputs.select(Pharmacy_Names, {label:"Choose a Pharmacy"})/* Filter based on selected variable */pharm_eths_filtered = pharm_eths_ojs.params({ variable2 }).filter((d) => d.Name_Code=== variable2)pharm_Age_Gender_filtered = pharm_Age_Gender_ojs.params({ variable2 }).filter((d) => d.Name_Code=== variable2)pharm_IMD_filtered = pharm_IMD_ojs.params({ variable2 }).filter((d) => d.Name_Code=== variable2)
Plot.plot({width:800,height:300,marginLeft:80,marginBottom:120,/* Set axis labels */x: {label:"Ethnicity",tickRotate:-45 },y: { label:"Number of Residents" },marks: [ Plot.barY(pharm_eths_filtered, {y:"Est_Num",x:"Ethnic_Group",fill:"#7570b3" }) ]})
Plot.plot({width:320,height:240,marginLeft:80,marginTop:60,/* Set axis labels */x: {label:"IMD Quintile",type:"band",// explicitly treat x as categoricaldomain: ["1","2","3","4","5"] },y: { label:"Number of Residents" },marks: [ Plot.barY(pharm_IMD_filtered, {y:"Est_Num",x:"IMD_quintile",fill:"#7570b3" }) ]})